#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* convertToTitle(int columnNumber) {
    char* ret = (char*)malloc(sizeof(char) * 10);
    memset(ret, 0, 10);
    int i = 0;
    int carry = columnNumber % 26;
    int count = 0;
    int flag = 0;
    while (columnNumber)
    {

        if (flag)
            break;
        char a = carry + 'A' - 1;
        if (carry == 0)
        {
            a = 'Z';
            columnNumber -= 26;
        }
        ret[i] = a;
        i++;
        columnNumber /= 26;
        carry = columnNumber % 26;
        count++;
    }
    int m = 0;
    for (int j = i - 1; j >= i / 2; j--)
    {
        char tmp = ret[j];
        ret[j] = ret[m];
        ret[m] = tmp;
        m++;
    }
    return ret;
}
int main()
{
    char* ret = convertToTitle(701);
    printf("%s", ret);
    return 0;
}
//#include <stdbool.h>
//bool isPalindrome(char* s) {
//    int left = 0;
//    int right = strlen(s) - 1;
//    while (left < right)
//    {
//        while ((!(isupper(s[left]) || islower(s[left]))) && (!isdigit(s[left])))
//        {
//
//            left++;
//            if (left > strlen(s) - 1)
//                return true;
//        }
//        while ((!(isupper(s[right]) || islower(s[right]))) && !(isdigit(s[right])))
//        {
//            right--;
//            if (right < 0)
//                return true;
//        }
//        if (isupper(s[left]))
//            s[left] = tolower(s[left]);
//        if (isupper(s[right]))
//            s[right] = tolower(s[right]);
//        if (s[left] != s[right])
//            return false;
//        left++;
//        right--;
//    }
//    return true;
//}
//int main()
//{
//    char s[] = "A man, a plan, a canal : Panama";
//    if (isPalindrome(s))
//        printf("true");
//    else
//        printf("false");
//
//    return 0;
//}